<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

/**
 * @author Anh Nguyen <duyanhnguyen@vccorp.vn>
 * @copyright 2012
 */
class Auth extends MX_Controller
{

    function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $back = $this->input->get('back_url');
        if ($back) {
            $backlink = urlencode($back);
            redirect("admin/auth/login?back_url=$backlink");
        }
        redirect('admin/auth/login');
    }

    public function login()
    {
        $data = array();
        if ($this->session->userdata('u_id') && $this->session->userdata('u_acc')) {
            redirect('admin/landing');
        }
        $this->load->library('Form_validation');
        $this->load->model('user/user_model');
        $data['error'] = '';
        if ($this->input->post()) {
            $this->form_validation->set_rules('username', 'Tài khoản', 'required');
            $this->form_validation->set_rules('password', 'Mật khẩu', 'required');
            $this->form_validation->set_message('required', '%s không được để trống');
            $this->form_validation->set_error_delimiters('<li>', '</li>');
            if ($this->form_validation->run()) {
                $user = $this->input->post('username');
                $pass = md5($this->input->post('password'));
                $loginData = $this->user_model->login($user, $pass);
                if (!$loginData['exists']) {
                    $data['error'] = 'Tài khoản hoặc mật khẩu không đúng';
                } else {
                    if ($loginData['lockUser']) {
                        $data['error'] = 'Tài khoản đã bị khóa, liên hệ webmaster để biết thêm thông tin';
                    } else {
                        $dataUser = $loginData['dataUser'];
                        $this->session->set_userdata('u_id', $dataUser['id']);
                        $this->session->set_userdata('u_acc', $dataUser['acc']);
                        $this->session->set_userdata('u_status', $dataUser['status']);
                        if ($this->input->get('back_url')) {
                            redirect(urldecode($this->input->get('back_url')));
                        }
                        redirect('admin/landing');
                    }
                }
            }
        }
        $this->load->view('auth/login_view', $data);
    }
    
    public function logout()
    {
        $this->mycommon->authAdmin();
        $this->session->unset_userdata('u_id');
        $this->session->unset_userdata('u_acc');
        $this->session->unset_userdata('u_status');
        redirect('admin/auth/login');
    }
    
    public function pass()
    {
        $this->mycommon->authAdmin();
        $data = array();
        $this->load->library('Form_validation');
        $this->form_validation->CI = & $this;
        $this->form_validation->set_error_delimiters('<li>', '</li>');
        $this->load->model('user/user_model');
        $data['error'] = '';
        if ($this->input->post()) {
            $this->form_validation->set_rules('password', 'Mật khẩu cũ', 'required');
            $this->form_validation->set_rules('password_new', 'Mật khẩu mới', 'required');
            $this->form_validation->set_rules('password_new_re', 'Nhập lại mật khẩu', 'required|matches[password_new]');
            $this->form_validation->set_message('required', '%s không được để trống');
            if ($this->form_validation->run()) {
                $user = $this->session->userdata('u_id');
                $pass = md5($this->input->post('password'));
                $pass_new = md5($this->input->post('password_new'));
                $pass_new_re = md5($this->input->post('password_new_re'));
                if (!$this->user_model->checkPass($user, $pass)) {
                    $data['error'] = 'Mật khẩu cũ không đúng, vui lòng thử lại';
                } else {
                    if ($this->user_model->changePass($user, $pass_new)) {
                        $data['error'] = "Thay đổi mật khẩu thành công";
                    } else {
                        $data['error'] = "Có lỗi xảy ra, vui lòng thử lại";
                    }
                }
            }
        }
        $this->load->library('Admin_Layout');
        $this->admin_layout->view('auth/change_pass', $data);
    }

}

?>
